#e[Stage]
#Title[{]
#Text[{̒
ۂɐ{邩ǂ
mȂ
iƑׁA
Ƒ̂mȂ]
#Player[FREE]
#PlayLevel[{]
#ScriptVersion[2]

script_stage_main {

	//	JgfBNg
	let Current = GetCurrentScriptDirectory;


	//	摜̃pX
	let Gate_IMG = Current ~ "img\object\gate.png";
	//	nʉ摜̃pX
	let Ground_IMG = Current ~ "img\object\under.png";


	//	wïړ
	let Move_Z = 0;
	//	wïړx
	let Add_Z = 25;


	//	J̕ʊp
	let Angle_X = 0;
	//	J̋p
	let Angle_Y = 0;
	//	Ĵʒu
	let Camera_X = 0;
	//	Ĵʒu
	let Camera_Y = 0;


	@Initialize {
		//	摜̓ǂݍ
		LoadGraphic(Gate_IMG);
		LoadGraphic(Ground_IMG);
	}

	@MainLoop {

		//	[U[`L[ƒᑬړL[̑gݍ킹ɂAL[ĂԂ̋ω

		//	[U[`L[ĂԁAL[ŃJʒuω
		//	[U[`L[Ăꍇɂ́AJpxω
		//	AAᑬړL[ĂꍇɌAὠxȂ
		alternative(GetKeyState(VK_USER))
			case(KEY_FREE){
				alternative(GetKeyState(VK_SLOWMOVE))
					case(KEY_FREE){
						if(GetKeyState(VK_LEFT) >= KEY_PUSH){ Angle_X --; if(Angle_X <= -360){ Angle_X += 360; } }
						if(GetKeyState(VK_RIGHT) >= KEY_PUSH){ Angle_X ++; if(Angle_X >= 360){ Angle_X -= 360; } }
						if(GetKeyState(VK_UP) >= KEY_PUSH){ Angle_Y ++; if(Angle_Y >= 90){ Angle_Y = 90; } }
						if(GetKeyState(VK_DOWN) >= KEY_PUSH){ Angle_Y --; if(Angle_Y <= 0){ Angle_Y = 0; } }
					}
					others{
						if(GetKeyState(VK_LEFT) >= KEY_PUSH){ Angle_X -= 0.25; if(Angle_X <= -360){ Angle_X += 360; } }
						if(GetKeyState(VK_RIGHT) >= KEY_PUSH){ Angle_X += 0.25; if(Angle_X >= 360){ Angle_X -= 360; } }
						if(GetKeyState(VK_UP) >= KEY_PUSH){ Angle_Y += 0.25; if(Angle_Y >= 90){ Angle_Y = 90; } }
						if(GetKeyState(VK_DOWN) >= KEY_PUSH){ Angle_Y -= 0.25; if(Angle_Y <= 0){ Angle_Y = 0; } }
					}
			}
			others{
				alternative(GetKeyState(VK_SLOWMOVE))
					case(KEY_FREE){
						if(GetKeyState(VK_LEFT) >= KEY_PUSH){ Camera_X -= 5; if(Camera_X <= -1500){ Camera_X = -1500; } }
						if(GetKeyState(VK_RIGHT) >= KEY_PUSH){ Camera_X += 5; if(Camera_X >= 1500){ Camera_X = 1500; } }
						if(GetKeyState(VK_UP) >= KEY_PUSH){ Camera_Y += 5; if(Camera_Y >= 1500){ Camera_Y = 1500; } }
						if(GetKeyState(VK_DOWN) >= KEY_PUSH){ Camera_Y -= 5; if(Camera_Y <= -100){ Camera_Y = -100; } }
					}
					others{
						if(GetKeyState(VK_LEFT) >= KEY_PUSH){ Camera_X -= 1.25; if(Camera_X <= -1500){ Camera_X = -1500; } }
						if(GetKeyState(VK_RIGHT) >= KEY_PUSH){ Camera_X += 1.25; if(Camera_X >= 1500){ Camera_X = 1500; } }
						if(GetKeyState(VK_UP) >= KEY_PUSH){ Camera_Y += 1.25; if(Camera_Y >= 1500){ Camera_Y = 1500; } }
						if(GetKeyState(VK_DOWN) >= KEY_PUSH){ Camera_Y -= 1.25; if(Camera_Y <= -100){ Camera_Y = -100; } }
					}
			}

		//	XLbvL[ƂŁAJ̏
		if(GetKeyState(VK_SKIP) == KEY_PUSH){
			Angle_X = 0;
			Angle_Y = 0;
			Camera_X = 0;
			Camera_Y = 0;
		}

		//	wïړ
		Move_Z += Add_Z;
		if (Move_Z >= 700) {
			Move_Z -= 700;
		}
	}

	@BackGround {
		//	J̉͈͂̐ݒ
		SetPerspectiveClip(0, 15000);

		//	J̒_
		SetViewTo(0 + Camera_X, 128 + Camera_Y, 0);
		//	Jʒu
		SetViewFrom(2000, 90 - Angle_X, Angle_Y);

		//	̔
		SetFog(10000, 15000, 0, 0, 0);

		//	yobt@̎gp
		UseZBuffer(true);
		WriteZBuffer(true);

		//	nʂ̕`
		SetTexture(Ground_IMG);
		SetGraphicAngle(-90, 180, 180);
		SetGraphicRect(0, -14000, 467, 14000);
		DrawGraphic3D(0, 0, Move_Z);

		//	̕`
		ascent(Gate in -30..31) {
			SetTexture(Gate_IMG);
			SetGraphicAngle(0, 180, 180);
			SetGraphicRect(1, 1, 511, 511);
			DrawGraphic3D(0, 256, (350 * Gate) + Move_Z);
		}
	}

}

